package user

import (
	"context"
	user2 "git.mycaigou.com/gfyx/micro-gfyx-user-service/infrastructure/dto/user"
	remote "git.mycaigou.com/gfyx/micro-gfyx-user-service/infrastructure/repository/remote/modeling_paltform_remote"
	"git.mycaigou.com/gfyx/micro-gfyx-user-service/infrastructure/repository/user"
)

type UserInfoServiceIface interface {
	// GetUserInfo 获取用户信息
	GetUserInfo(ctx context.Context, paramType int32, param string) (*user.CommonUserInfoBo, error)
	// BatchSaveUserInfo 批量保存用户
	BatchSaveUserInfo(ctx context.Context, tenantCode string, userList []remote.UserInfo) (bool, error)

	// IncrSyncUser 增量同步用户信息
	IncrSyncUser(ctx context.Context, tenantCode, operation string, userList []remote.UserInfo) (bool, error)
	// GetTenantName 根据租户code获取租户名称
	GetTenantName(ctx context.Context, tenantCode string, isClean bool) (string, error)
	// GetTenantProfitUse 获取租户权益
	GetTenantProfitUse(ctx context.Context, tenantCode string) (tenantProfitUse *user2.TenantProfitUse, err error)
	// GetTenantCodeByName 根据租户名称查询租户code
	GetTenantCodeByName(ctx context.Context, companyName string) (string, error)
	// SaveUserApply 保存用户申请信息
	SaveUserApply(ctx context.Context, userApply *user.CommonUserApply) (*user.CommonUserApply, error)
}
